package com.zpark.signup.service;


import com.zpark.signup.dto.UserDto;
import com.zpark.signup.dto.UserPwdDto;
import com.zpark.signup.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zpark.signup.utils.R;
import com.zpark.signup.utils.RespPageBean;

/**
 * @author YYS
 * @description 针对表【user(用户表)】的数据库操作Service
 * @createDate 2023-09-25 11:46:09
 */
public interface UserService extends IService<User> {


    /**
     * 注册用户
     *
     * @param user
     * @return
     */
    R registerUser(User user);

    /**
     * 删除用户
     */
    R deleteUser(Integer id);

    /**
     * 修改用户基本信息（不含密码）
     */
    R updateUser(User user);

    /**
     * 条件+分页查询用户信息
     *
     * @param userDto
     * @return
     */
    RespPageBean selectUser(UserDto userDto);

    /**
     * 根据用户名查询用户
     */
    R selectUserByUsername(String username);

    /**
     * 根据邮箱查询用户
     */
    R selectUserByEmail(String email);

    /**
     * 修改用户密码
     *
     * @return
     */
    R updateUserPassword(UserPwdDto userPwdDto);


    /**
     * 根据用户id获取用户密码
     *
     * @param userId
     * @return
     */
    String selectPasswordByUserId(Integer userId);


    /**
     * 根据id查询单个用户信息
     *
     * @param id
     * @return
     */
    R selectUser(Integer id);
}
